The Mobile Industry Processor Interface alliance MIPI has defined a standard for chip-to-chip networks based on high-speed serial links, i.e. the Unified Protocol UniPro (www.mipi.org). The Unified Protocol UniPro relates to a general purpose protocol dealing with high-speed interconnect issues, e.g. like error handling, flow control, routing and arbitration.
The Unified Protocol UniPro may be used as a communication protocol for a digital link e.g. between the radio frequency RF chip and baseband BB chip in electronic devices with a two-chip modem solution. Such a two-chip solution is preferably used in mobile devices. The modem solution may include 802.11 modems WiFi, video on mobile TVoM or WiMAX protocols.
Within the unified protocol UniPro, error handling capabilities must be provided as for example mobile devices like mobile phones often operate in a noisy environment where various kinds of errors may occur. Such errors may include bit errors (one of the transmitted bits is inverted), burst errors (a sequence of bits is received erroneously), stuck-at errors (a sequence of bits with the same value is received), and synchronization errors (one or more bits is deleted or duplicated leading to a loss of the symbol boundary).
The error rates that may occur can be relatively high, e.g. the bit error rate of the MIPI D-Phy layer is expected to be 10−12 or in other words one bit can be erroneous in every 15 to 20 minutes. Therefore, a mechanism to recover from errors must be provided to enable a reliable communication.
In UniPro, the error handling is performed within the data link layer L2. The transmission in this layer is performed based on transmission units or frames. FIG. 1 shows a basic representation of the data frame structure according to the unified protocol UniPro. This frame comprises reserved bits RB, and a frame sequence number FSN.
In every UniPro frame, a 16-bit CRC cyclic redundancy check is provided. These CRC bits are added by the transmitter of the frame. At the receiver's side, the CRC is calculated and verified to determine whether any errors have occurred during the transmission of the frame. If the CRC received by the in the frame and computed by the receiver are the same, no errors have been detected, i.e. the transmitted and received frame correspond to each other. Furthermore, a 5-bit sequence number FSN is introduced into the frame to identify the packets. If a TC frame is transmitted, a copy of the transmitted frame is stored in a replay buffer at the transmitter's end.
The receiver will acknowledge a correct packet receipt to the transmitter by forwarding the sequence number of the frame in an Acknowledgement and Flow Control frame AFC. The structure of such an Acknowledgement and Flow Control Frame is depicted in FIG. 2. It should be noted that also multiple frames can be acknowledged at the same time if a sequence number is considered to acknowledge all frames having a sequence number equal to or less than the currently transmitted sequence number. If the transmitter has received an Acknowledgement and Flow Control Frame AFC, it can remove all frames which are being acknowledged by the AFC frame from its replay buffer.
However, if the receiver detects e.g., by means of the CRC that the received frame does not correspond to the transmitted frame, it can forward a Negative Acknowledgement Frame NAC. FIG. 3 shows a schematic representation of the structure of a Negative Acknowledgement frame NAC. The Negative Acknowledgement Frame NAC may acknowledge all correctly received frames but may signal that an error has been detected. In such a case, the receiver can remove all acknowledged frames from its replay buffer and may retransmit all unacknowledged frames.
However, it may also happen that the AFC or the NAC frames are not correctly received due to errors during the transmission over the link. It should be noted that these frames are not protected by the sequence numbers. Therefore, a mechanism must be provided such that the information with respect to the sequence number is retrieved at the data-frame transmitter side. If a frame re-transmission is initiated, the AFC frames are transmitted to update any potential miscommunication in the past. Thereafter, if no positive or negative acknowledgement has been received for a long time, a replay timer triggers a retransmission and assumes that an error has occurred in the data frame or in the transmission of the AFC frame.
Furthermore, it should be noted that the Unified Protocol UniPro allows a retransmission at almost any time, e.g. in-between frames, in the middle of a data frame, possibly pre-empting a lower-priority frame. However, a retransmission is not permitted in the middle of an AFC or NAC frame. Moreover, the Unified Protocol UniPro does not provide a mechanism in the receiver to detect a re-transmission.
In other words, a re-transmission can start at any given time and cannot be detected by the receiver, for example the receiver cannot know if it is part of a pre-emption or a frame retransmission when a frame starts. Therefore, the receiver cannot check if a correct symbol sequence is received which may lead to a delayed error detection. Furthermore, the verification of a correctness of the receiver's implementation is very difficult as transmission errors are captured only after numerous state transitions which may lead to the need for numerous and long stimulations.